导航菜单
首页 >  SpringBoot上传文件报错临时路径不存在  > SpringBoot 文件上传临时文件路径配置详解

SpringBoot 文件上传临时文件路径配置详解

在码农的世界里,优美的应用体验,来源于程序员对细节的处理以及自我要求的境界,年轻人也是忙忙碌碌的码农中一员,每天、每周,都会留下一些脚印,就是这些创作的内容,有一种执着,就是不知为什么,如果你迷茫,不妨来瞅瞅码农的轨迹。

1 问题 SpringBoot 项目上传文件报错

The temporary upload location [/tmp/tomcat.*.80/work/Tomcat/localhost/ROOT] is not valid

上传文件的临时路径找不到

2 原因说明

在linux系统中,springboot应用服务再启动(java -jar 命令启动服务)的时候,会在操作系统的/tmp目录下生成一个tomcat*的文件目录,上传的文件先要转换成临时文件保存在这个文件夹下面。

由于临时/tmp目录下的文件,在长时间(10天)没有使用的情况下,就会被系统机制自动删除掉。

3 解决方法 自定义配置临时文件路径

在你的项目配置文件中添加自定义配置如下:

SpringBoot 文件上传临时文件路径配置详解_java

这样需要你手动在你服务器根目录下创建这个文件夹,我们可以在项目启动的时候检查一下临时文件夹是否存在,不存在就创建

import org.springframework.beans.factory.annotation.Value;import org.springframework.boot.web.servlet.MultipartConfigFactory;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import javax.servlet.MultipartConfigElement;import java.io.File;@Configurationpublic class MultipartConfig {@Value("${location.tempDir:/tmp/tomcat_upload}")private String tempDir;@BeanMultipartConfigElement multipartConfigElement() {MultipartConfigFactory factory = new MultipartConfigFactory();File tmpDirFile = new File(tempDir);// 判断文件夹是否存在if (!tmpDirFile.exists()) {//创建文件夹tmpDirFile.mkdirs();}factory.setLocation(tempDir);return factory.createMultipartConfig();}}

相关推荐: